package com.feicheng;

import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;

public class AJJ {

    public static void main( String[] args ) {
        LocalDateTime st = LocalDateTime.now();
        LocalDateTime et = st.plusMinutes(300);


        System.out.println(getNearestFiveOrTenMinutes(st));
        System.out.println(et);
    }


    public static LocalDateTime getNearestFiveOrTenMinutes(LocalDateTime inputTime) {
        // 获取当前时间的分钟数
        int minute = inputTime.getMinute();

        // 计算距离下一个五分钟或十分钟的时间差
        int remainderFive = minute % 5; // 当前分钟数对5取余
        int remainderTen = minute % 10; // 当前分钟数对10取余

        // 如果当前分钟已经是5或10的倍数，则直接跳到下一个5或10的倍数
        if (remainderFive == 0 || remainderTen == 0) {
            return inputTime.withMinute(0).truncatedTo(ChronoUnit.MINUTES);
        }

        // 计算离当前时间最近的5或10分钟的时间
        int nextFive = minute + (5 - remainderFive); // 下一个5分钟的分钟数
        int nextTen = minute + (10 - remainderTen);  // 下一个10分钟的分钟数

        // 选择离当前时间更近的时间
        if (nextFive < nextTen) {
            return inputTime.withMinute(nextFive).truncatedTo(ChronoUnit.SECONDS);
        } else {
            return inputTime.withMinute(nextTen).truncatedTo(ChronoUnit.SECONDS);
        }
    }

    

}
